Timing recovery is an important digital receiver function in which the frequency and phase of the receiver's sampling clock are adjusted in order to minimize inter-symbol interference as well as to compensate for possible sampling frequency drifts between the transmitter and receiver's sampling clocks. Sampling the received signal at the optimum sampling instant is important for detection purposes. By sampling the received waveform at the optimum sampling instants, a smaller probability of error in the detection stage is obtained. However, if there is a mismatch between the transmitter and receiver's clocks, the received signal will be sampled at the wrong times, which will increase the level of sampling noise (also known as timing jitter) as well as introduce sampling frequency drifts. Minimizing timing jitter and preventing sampling frequency drifts are two important timing recovery objectives.
A simple, non-data aided, widely used timing recovery algorithm for band-limited amplitude modulated data streams is known as the Gardner technique and is shown in FIGS. 1 and 2. FIG. 1 illustrates how a Gardner timing error detector 10 can be incorporated into the timing recovery architecture.
As shown in FIG. 1, a signal on an input 12 is sampled by a sampler 14 and the sampled signal is provided to the Gardner timing error detector 10. The Gardner timing error detector 10 detects a timing error based on three successive samples and provides the detected timing error to a loop filter 16. The output of the loop filter 16 controls a numerically controlled oscillator (NCO) 18 which adjusts the timing of the sampler 14 in accordance with the output of the loop filter 16.
The Gardner timing error detector 10 was originally designed for BPSK/QPSK receivers, but it can be shown that the Gardner timing error detector works successfully for higher order constellations.
The Gardner timing error detector 10 typically uses two samples per symbol for its operation and is based on the transmitted pulse shape symmetry. As shown in FIG. 2, the input to the Gardner timing error detector 10 is provided to an input of a first one sample delay 20 and to a positive input of a summer 22. The output of the first one sample delay 20 is provided to an input of a second one sample delay 24 and to one input of a multiplier 26. The output of the second one sample delay 24 is provided to a negative input of the summer 22, and the output of the summer 22 is provided to the other input of the multiplier 26.
The Gardner timing error detector 10 works well for a flat or clean channel with the assumption of a white Gaussian noise environment. However, the Gardner timing error detector 10 is sensitive to nulls in the spectrum of the received pulse. In particular, when a null exists at half the transmitted symbol rate, the accuracy of the timing indications produced by the Gardner timing error detector 10 is reduced.
The spectrum of the received pulse, which is the product of the spectrum of the transmitted pulse and the spectrum of the channel, will have a null at a particular frequency when the spectrum of the channel has a null at that frequency. Nulls in the channel spectrum can occur when the transmitted signal travels through multiple paths between the transmitter and the receiver. In this phenomenon, known as multi-path propagation, certain frequency components of the signals arriving at the receiver will add destructively (interfere) resulting in nulls in the spectrum at those frequencies. Multi-path propagation is typically present when, in addition to a direct path between the transmitter and the receiver, additional paths are present due to reflections of the transmitted signal off of objects such as buildings, terrain, and moving objects.
Therefore, a need exists for a timing recovery algorithm that operates well in the presence of multi-path propagation. The present invention relates to improved timing recovery for multi-path reception. The Gardner timing error detector 10 performs poorly or does not perform at all for such channel conditions. Since successful timing recovery is important for accurate data detection, it is important that timing recovery is performed successfully and that the timing recovery process be substantially independent of the current channel conditions.